; ModuleID = 'llvm_expressions/tigress-3-challenge-0.ll'
source_filename = "llvm_expressions/tigress-3-challenge-0.ll"
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-linux-gnu"

; Function Attrs: norecurse nounwind readnone
define i64 @SECRET(i64 %SymVar_0) local_unnamed_addr #0 {
.3:
  %.4 = xor i64 %SymVar_0, -1
  %.5 = or i64 %.4, 960537078
  %.6 = add i64 %.5, %SymVar_0
  %.7 = add i64 %.6, 1
  %.8 = and i64 %SymVar_0, 561930593
  %.9 = xor i64 %.8, -1
  %.11 = add i64 %SymVar_0, 561930593
  %.13 = add i64 %.11, %.9
  %.14 = add i64 %.13, 1
  %.15 = xor i64 %.14, 197093999
  %.16 = sub i64 268435454, %.13
  %.17 = shl i64 %.16, 1
  %.20 = and i64 %.17, 394187998
  %.21 = sub i64 %.15, %.20
  %.22 = add i64 %.21, 663721066
  %.23 = xor i64 %.22, %.7
  %.24 = sub i64 9223372036854775806, %.6
  %.25 = and i64 %.22, %.24
  %.28 = shl i64 %.25, 1
  %.29 = sub i64 %.23, %.28
  %.32 = lshr i64 %.29, 3
  %.33 = or i64 %.32, 7
  %.34 = xor i64 %.33, 56
  %.35 = add nuw nsw i64 %.32, 1
  %.36 = add nuw nsw i64 %.35, %.34
  %.42 = and i64 %.36, 62
  %.43 = or i64 %.42, 1
  %.44 = lshr i64 %.29, %.43
  %.45 = or i64 %.44, 31
  %.46 = xor i64 %.45, 1152921504606846944
  %.47 = add nuw i64 %.46, %.44
  %.48 = shl i64 %.47, 4
  %.51 = add i64 %.48, 16
  %.52 = and i64 %.51, %.14
  %.53 = xor i64 %.52, -1
  %.55 = add i64 %.51, %.14
  %.57 = add i64 %.55, %.53
  %.58 = add i64 %.57, 1
  %.172 = lshr i64 %.58, 2
  %.173 = or i64 %.172, 15
  %.174 = xor i64 %.173, -16
  %.175 = add nsw i64 %.174, %.172
  %.17840 = or i64 %.175, -2
  %.180 = add i64 %.175, 2
  %.182 = add i64 %.180, %.17840
  %.183 = add i64 %.182, 1
  %.187 = and i64 %.182, 63
  %.192 = xor i64 %.187, 63
  %.193 = lshr i64 %.58, %.192
  %.256 = and i64 %.183, 63
  %.257 = shl i64 %.58, %.256
  %.258 = and i64 %.193, %.257
  %.259 = xor i64 %.258, -1
  %.261 = add i64 %.257, %.193
  %.263 = add i64 %.261, %.259
  %.264 = add i64 %.263, 1
  %.265 = sub i64 2305843009213693950, %.263
  %.266 = or i64 %.265, 31
  %.267 = add i64 %.264, %.266
  %.268 = shl i64 %.267, 3
  %.271 = add i64 %.268, 8
  %.272 = xor i64 %.14, %SymVar_0
  %.274 = and i64 %.14, %.4
  %.275 = shl i64 %.274, 1
  %.276 = sub i64 %.272, %.275
  %.277 = or i64 %.276, 15
  %.278 = xor i64 %.277, 2305843009213693936
  %.279 = add i64 %.278, %.276
  %.280 = shl i64 %.279, 3
  %.283 = add i64 %.280, 8
  %.284 = and i64 %.283, %.276
  %.285 = xor i64 %.284, -1
  %.287 = add i64 %.283, %.276
  %.289 = add i64 %.287, %.285
  %.290 = add i64 %.289, 1
  %.293 = lshr i64 %.290, 3
  %.294 = or i64 %.293, 7
  %.295 = xor i64 %.294, 56
  %.296 = add nuw nsw i64 %.293, 1
  %.297 = add nuw nsw i64 %.296, %.295
  %.303 = and i64 %.297, 62
  %.304 = or i64 %.303, 1
  %.305 = lshr i64 %.290, %.304
  %.306 = or i64 %.305, 31
  %.307 = xor i64 %.306, 1152921504606846944
  %.308 = add nuw i64 %.307, %.305
  %.309 = shl i64 %.308, 4
  %.312 = add i64 %.309, 16
  %.315 = lshr i64 %.14, 1
  %.316 = or i64 %.315, 7
  %.317 = xor i64 %.316, -8
  %.318 = add nsw i64 %.317, %.315
  %.32141 = or i64 %.318, 62
  %.325 = add i64 %.318, 3
  %.326 = add i64 %.325, %.32141
  %.331 = and i64 %.326, 63
  %.332 = lshr i64 %SymVar_0, %.331
  %.333 = add i64 %.332, 514336583
  %0 = lshr i64 %.333, 16
  %.363 = and i64 %0, 65280
  %1 = lshr i64 %.333, 24
  %.379 = and i64 %1, 4278190080
  %2 = shl i64 %.333, 40
  %.400 = and i64 %2, 71776119061217280
  %.385 = and i64 %.333, -71776123339472641
  %.390 = or i64 %.385, %.363
  %.401 = or i64 %.390, %.379
  %.406 = or i64 %.401, %.400
  %.407 = and i64 %.312, %.406
  %.408 = xor i64 %.407, -1
  %.410 = add i64 %.406, 1
  %.412 = add i64 %.410, %.312
  %.413 = add i64 %.412, %.408
  %.414 = lshr i64 %.413, 32
  %.449 = and i64 %.414, 16777215
  %.45118 = lshr i64 %.413, 56
  %.454 = shl nuw nsw i64 %.45118, 24
  %.455 = or i64 %.449, %.454
  %.482 = shl i64 %.413, 32
  %.483 = and i64 %.482, 1095216660480
  %.484 = or i64 %.455, %.483
  %.489 = and i64 %.482, 280375465082880
  %.490 = or i64 %.484, %.489
  %.495 = and i64 %.482, 71776119061217280
  %.496 = or i64 %.490, %.495
  %.498 = lshr i64 %.413, 24
  %.501 = shl i64 %.498, 56
  %.502 = or i64 %.496, %.501
  %.503 = and i64 %.271, %.502
  %.504 = xor i64 %.503, -1
  %.506 = add i64 %.271, %.502
  %.508 = add i64 %.506, %.504
  %.509 = add i64 %.508, 1
  %.510 = lshr i64 %.509, 32
  %.545 = and i64 %.510, 16777215
  %.54733 = lshr i64 %.509, 56
  %.550 = shl nuw nsw i64 %.54733, 24
  %.551 = or i64 %.545, %.550
  %.578 = shl i64 %.509, 32
  %.579 = and i64 %.578, 1095216660480
  %.580 = or i64 %.551, %.579
  %.585 = and i64 %.578, 280375465082880
  %.586 = or i64 %.580, %.585
  %.591 = and i64 %.578, 71776119061217280
  %.592 = or i64 %.586, %.591
  %.594 = lshr i64 %.509, 24
  %.597 = shl i64 %.594, 56
  %.598 = or i64 %.592, %.597
  %.621 = sub i64 -2, %.57
  %.622 = and i64 %.598, %.621
  %.624 = xor i64 %.598, -1
  %.625 = and i64 %.58, %.624
  %.627 = mul i64 %.622, %.625
  %.629 = and i64 %.598, %.58
  %.631 = or i64 %.598, %.58
  %.633 = mul i64 %.629, %.631
  %.635 = add i64 %.627, %.633
  %.682 = lshr i64 %.598, 2
  %.683 = or i64 %.682, 15
  %.684 = xor i64 %.683, -16
  %.685 = add nsw i64 %.684, %.682
  %.68842 = or i64 %.685, -2
  %.690 = add i64 %.685, 2
  %.692 = add i64 %.690, %.68842
  %.693 = add i64 %.692, 1
  %.697 = and i64 %.692, 63
  %.702 = xor i64 %.697, 63
  %.703 = lshr i64 %.598, %.702
  %.766 = and i64 %.693, 63
  %.767 = shl i64 %.598, %.766
  %.768 = and i64 %.703, %.767
  %.769 = xor i64 %.768, -1
  %.771 = add i64 %.767, %.703
  %.773 = add i64 %.771, %.769
  %.774 = add i64 %.773, 1
  %.775 = sub i64 2305843009213693950, %.773
  %.776 = or i64 %.775, 31
  %.777 = add i64 %.774, %.776
  %.778 = shl i64 %.777, 3
  %.781 = add i64 %.778, 8
  %.782 = sub i64 2305843009213693950, %.289
  %.783 = or i64 %.782, 15
  %.784 = add i64 %.783, %.290
  %.785 = shl i64 %.784, 3
  %.788 = add i64 %.785, 8
  %.789 = and i64 %.788, %.290
  %.790 = xor i64 %.789, -1
  %.792 = add i64 %.289, 2
  %.794 = add i64 %.792, %.788
  %.795 = add i64 %.794, %.790
  %.796 = or i64 %.413, %.795
  %.798 = shl i64 %.796, 1
  %.799 = xor i64 %.413, %.795
  %.800 = sub i64 %.798, %.799
  %.801 = xor i64 %.800, -1
  %.802 = or i64 %.801, 63
  %.803 = add i64 %.802, %.800
  %.804 = shl i64 %.803, 4
  %.807 = add i64 %.804, 16
  %.809 = and i64 %.509, %.801
  %.811 = sub i64 -2, %.508
  %.812 = and i64 %.811, %.800
  %.814 = mul i64 %.809, %.812
  %.816 = and i64 %.509, %.800
  %.818 = or i64 %.509, %.800
  %.820 = mul i64 %.816, %.818
  %.822 = add i64 %.814, %.820
  %.823 = sub i64 -17, %.804
  %.824 = and i64 %.822, %.823
  %.825 = add i64 %.807, %.824
  %.826 = and i64 %.781, %.825
  %.827 = xor i64 %.826, -1
  %.829 = add i64 %.825, 1
  %.831 = add i64 %.829, %.781
  %.832 = add i64 %.831, %.827
  %.835 = lshr i64 %.800, 4
  %.836 = or i64 %.835, 15
  %.837 = xor i64 %.836, -16
  %.838 = add nsw i64 %.837, %.835
  %.839 = add nsw i64 %.838, 1
  %.840 = and i64 %.839, 1
  %.841 = xor i64 %.840, 63
  %.843 = add nsw i64 %.838, 2
  %.845 = add nsw i64 %.843, %.841
  %.851 = and i64 %.845, 63
  %.856 = xor i64 %.851, 63
  %.857 = shl i64 %.832, %.856
  %.870 = and i64 %.839, 62
  %.871 = or i64 %.870, 1
  %.872 = lshr i64 %.832, %.871
  %.873 = xor i64 %.857, -1
  %.874 = and i64 %.872, %.873
  %.875 = add i64 %.874, %.857
  %.878 = lshr i64 %.875, 2
  %.879 = or i64 %.878, 15
  %.880 = xor i64 %.879, 48
  %.881 = add nuw nsw i64 %.878, 1
  %.882 = add nuw i64 %.881, %.880
  %.884 = or i64 %.882, 1
  %.889 = sub i64 0, %.884
  %.894 = and i64 %.889, 63
  %.895 = shl i64 %.635, %.894
  %.995 = and i64 %.857, %.872
  %.996 = xor i64 %.995, -1
  %.998 = add i64 %.857, 1
  %.1000 = add i64 %.998, %.872
  %.1001 = add i64 %.1000, %.996
  %.1004 = lshr i64 %.1001, 2
  %.1005 = or i64 %.1004, 15
  %.1006 = xor i64 %.1005, 48
  %.1007 = add nuw nsw i64 %.1004, 1
  %.1008 = add nuw i64 %.1007, %.1006
  %.1014 = and i64 %.1008, 62
  %.1015 = or i64 %.1014, 1
  %.1016 = lshr i64 %.635, %.1015
  %.1017 = xor i64 %.895, -1
  %.1018 = and i64 %.1016, %.1017
  %.1019 = add i64 %.1018, %.895
  ret i64 %.1019
}

attributes #0 = { norecurse nounwind readnone }
